<template>
  <el-dialog :title="titleMap[mode]" v-model="visible" :width="500" destroy-on-close @closed="$emit('closed')" :close-on-press-escape="mode != 'show' ? false : true" align-center :close-on-click-modal="false">
    <el-form :model="form" :rules="rules" :disabled="mode == 'show'" ref="dialogForm" label-width="120px" label-position="right">
      <el-form-item :label="$t('finance.invoicenum')" prop="invoice_code">
        <el-input v-model="form.invoice_code" :placeholder="$t('all.enter')" clearable></el-input>
      </el-form-item>
      <el-form-item :label="$t('all.remark')" prop="remark">
        <el-input v-model="form.remark" :placeholder="$t('all.remark')" clearable type="textarea"></el-input>
      </el-form-item>
      <el-form-item :label="$t('all.attachment')" prop="enclosure">
        <sc-upload-file v-model="form.enclosure" :limit="1">
          <el-button type="primary" icon="el-icon-upload">{{$t('all.selectattachment')}}</el-button>
        </sc-upload-file>
      </el-form-item>
    </el-form>
    <template #footer>
      <el-button @click="visible = false">{{$t('all.cancel')}}</el-button>
      <el-button v-if="mode != 'show'" type="primary" :loading="isSaveing" @click="submit()">{{$t('all.save')}}</el-button>
    </template>
  </el-dialog>
</template>

<script>
export default {
  emits: ['success', 'closed'],
  data() {
    return {
      mode: "add",
      titleMap: {
        add: '新增其他收入',
        edit: this.$t('finance.invoice'),
        show: '查看'
      },
      visible: false,
      isSaveing: false,
      //表单数据
      form: {
        id: "",
        invoice_code: "",
        enclosure: "",
        remark: "",
        status: 2,
      },
    }
  },
  mounted() {
  },
  methods: {
    //显示
    open(mode = 'add') {
      this.mode = mode;
      this.visible = true;
      return this
    },
    //表单提交方法
    submit() {
      this.$refs.dialogForm.validate(async (valid) => {
        if (valid) {
          this.isSaveing = true;
          var res = await this.$API.finance.invoice.contract.add.post(this.form);
          this.isSaveing = false;
          if (res.code == 1) {
            this.$emit('success', this.form, this.mode)
            this.visible = false;
            this.$message.success(this.$t('all.yes'))
          } else {
            this.$alert(res.message,this.$t('all.prompt'), {type: "error"});
          }
        } else {
          return false;
        }
      })
    },
    //表单注入数据
    async setData(data) {
      this.form.id = data.id
      this.form.invoice_code = data.invoice_code
      this.form.enclosure = data.enclosure
      this.form.remark = data.remark
    },
  }
}
</script>

<style></style>
